It is well known that most computer systems in current use consist of a single central processing unit CPU with a concomitant memory. In addition, dedicated parallel computers have been developed to handle more complicated or large grain tasks. These parallel computers execute parallel processing by use of a plurality of CPU's each tightly coupled by an internal bus within the dedicated computer for communication with a memory inside the dedicated parallel computer. The plurality of CPU's are also connected to each other via the same internal communication medium or bus.
To accomplish a large task in the dedicated parallel computer, the task is distributed across the available plurality of processors (CPUs) processing simultaneously. To insure that access to the shared resources such as the memory, is made by only one processor at a time, some locking mechanism must be used that allows only one processor to access the resource at any one time and locks out the other processor from accessing the resource at that time. In the case of shared information, the information is generally stored in memory and hence the locking mechanism must control access to the memory or at least to that portion of the memory wherein the shared information is stored.
A type of locking mechanism used widely in multiprocessing systems such as a dedicated parallel computer is a semaphore. A semaphore is traditionally implemented as a register or a designated memory location on which is performed a read-and-clear operation, a test-and-set operation, a read-modify-write operation or some other form of a memory operation that performs an atomic read-modify-write function. An atomic or mutual exclusive read-modify-write function is one during whose execution no other register or memory references are permitted between the read and write portions of the operation.
A parallel computer then is conceptualized as being many individual, independent CPU's networked by a high speed internal communication bus as existing presently. This dedicated parallel computer has tremendous processing power to do large tasks (large grain) but the expense of the dedicated parallel computer is also tremendous.
Recently, systems in which a plurality of less expensive work stations each having its own CPU have been developed. To let users of the workstations share files in a common memory unit called the file server, a loosely coupled local area network (LAN) connects each workstation to the fileserver. The CPU of the work station is a powerful uniprocessing individual computer (UC) that is conventionally viewed to not have the same potential as a more powerful dedicated parallel computer. However, the uniprocessing individual computers (UCs) are each independently more powerful than the individual central processing units (CPUs) of the dedicated parallel computer. The power of the UC will help make up for the slower speed of the LAN as compared to the high speed internal bus. These uniprocessing individual computers may each handle a large problem, but would require an extreme amount of time as compared to the larger, more powerful dedicated parallel computer.
It is therefore a desire to be able to accomplish large tasks on small computer systems to avoid the purchase of larger, more expensive computers to do the same complicated task in a timely fashion.